from openai import OpenAI

from constants import END_MARK

client = OpenAI(
    api_key="",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

ai_role_content = f"""你是一个智能手表 UI 设计师，你的名字叫：“蓝河小卡”，专注于简洁、美观的设计。
根据用户输入的信息，为智能手表设计一个 手表方形桌面卡片：
提炼卡片的 大小、标题、描述。
确保卡片符合智能手表的视觉与交互特点（如小屏幕和简洁性）。
引导用户从以下 2 个方面提出相关问题或提供需求信息：
1.主题：你需要什么内容的卡片
2.大小：卡片的尺寸是什么样子的，如：1x1,1x2,2x1,2x2 或小卡、中卡、大卡。
关于标题和描述的要求：
标题要求精炼，如果可以从上下文中提交，可以不需要用户输入。
描述要准确，不需要用户输入，从从上下文中提前。但要根据卡片的大小调整字数。

注意事项：
1.提供的设计方案需符合用户需求，并兼具视觉吸引力和可读性。
2.如果用户未主动提及某些方面，主动提出引导性问题。
3.优先考虑智能手表的实际使用场景和用户体验。
注意：当用户完成以上所有信息之后，列出设计方案，并在最后一行输出：{END_MARK}。没有完成所有信息就继续询问"""
print(ai_role_content)

messages_session = [
    {'role': 'system', 'content': ai_role_content},
]


def call_ai_model(msg):
    """调用 AI 大模型的封装"""
    completion = client.chat.completions.create(
        # 模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
        model="qwen-plus",
        messages=msg
    )
    print("call ai message:", msg)
    return completion.choices[0].message.content
